import { config } from '../../config/index';

// 基础配置
const BASE_URL = config.baseUrl || '';
const DEFAULT_HEADER = {
  'Content-Type': 'application/json'
};

/**
 * 统一请求函数
 * @param {Object} options - 请求配置
 * @param {string} options.url - 请求地址
 * @param {string} [options.method='GET'] - 请求方法
 * @param {Object} [options.data] - 请求数据
 * @param {Object} [options.header] - 自定义请求头
 * @returns {Promise} 请求结果
 */
export function request(options) {
  const { url, method = 'GET', data, header = {} } = options;

  return new Promise((resolve, reject) => {
    wx.request({
      url: `${BASE_URL}${url}`,
      method: method.toUpperCase(),
      data,
      header: { ...DEFAULT_HEADER, ...header },
      success: (res) => {
        const { statusCode, data } = res;
        
        // 请求成功
        if (statusCode >= 200 && statusCode < 300) {
          resolve(data);
          return;
        }
        
        // 请求失败
        reject(new Error(`请求失败: ${statusCode}`));
      },
      fail: (error) => {
        reject(new Error(`网络请求失败: ${error.errMsg}`));
      }
    });
  });
} 